Nur mal so ein kleiner Denkanstoss:

Einen Timer z.B. im Atmel als Taktgeber für den Geschwindigkeitstakt der Schrittmotoren starten. Der löst bei erreichen des Vergleichswertes einen Interrupt zur steuerung der Motoren aus. Nach beendigung der Interruptroutine geht es weiter mit der Abarbeitung und auswertung der Sensoren. Im schlimmsten Fall werden so gerade mal 1% der Rechenzeit mit der Motorensteuerung verbracht.