Ich sehe beim drüberschauen zumindest keine irgendwie blockierenden Konstrukte. Besonders effizient ist das goto Herumgehüpfe auf dem kleinen 8-Bit Prozessor sicher nicht. Kann er vielleicht nicht schneller ?

Ansonsten hätte ich die Zeilen
Code:
Schrittdauer = int(...
oder
Code:
if (dir == 0 && (micros() - ...
im Verdacht.

Float-Operationen auf 8-Bittern sind schnarchlangsam.