So genau wie bei deinem DVD-Wechler muss es gar nicht sein, wenn die Drehscheibe ganz außen mit der Position auf 1mm genau stimmt, sollte das schon gehen, aber das muss halt zuverlässig sein.
Ich kann bei dem Motor nicht einfach so eine Flanke machen, weil ich den einfach nur per Umpolrelais ein/ausschalte.
Die 10ms Pause nach einem Schritt ist dafür, das der nicht zu schnell wird, und nach jeder Position ganz kurz wartet.

Ich frage mit istPos() nur ab, ob die Lichtschranke schaltet oder nicht. Das ist sicher nicht optimal, aber wie soll ichs sonst machen?