As well as what Jeff noted, my 2 cents. Most likely it's a software issue. But starting with the hardware, driving IRF530's directly from the Mega48 isn't a good idea on several fronts. If you want to drive from logic, pick a logic compatable MOSFET. IRLZ.... or some of the Fairchild or ST logic level's, other wise stick a mosfet driver inline.
Second, is there a reason you have all 4 phases sensed individually? Assuming your comparitors are off to interrupts on the M48, if you do your off time in code, it is quite feasable you could be periodically adding 50us x 4 for a 200us dead time. Most "COTS" designs combine the same coil when current sensing.
Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
Vist my websites - http://pminmo.com & http://millpcbs.com