Ich denke, es reicht eine Loch/Schlitzscheibe nach dem Getriebe.
Du mußt schon sehr viel mechanische Erfahrung haben, um das Getriebe wirklich Spielfrei zu bekommen - ich hab das Wissen nicht, aber ich kenn jemanden . Vorausgesetzt, Du verlierst keine Schritte beim Antrieb also nutzt Beschleunigungsrampen, bekommst Du eine hohe Widerholgenauigkeit. Bedenke daß Vor- und Rücklauf immer ein Spiel haben wird, so daß Du erst die Lichtschranke finden mußt, dann ein paar Schritte zurückfahren und die LB dann langsam Annähern bis zur Kante einer festgelegte Seite. Dann wirst Du hinreichend Genauigkeit erreichen.

Ich mach es so ähnlich bei meinem Koppler, meine Schlitzscheibe ist z.B. 10 Schritte "breit" und zwischen Vor- und Rücklauf habe ich genau 4 Schritte Unterschied - im Mittel.
Ich habe gute Erfahrungen damit gemacht, nicht via Interrupt die LB auszuwerten, sondern vor jedem Schritt die LB abzufragen.
Bei den Rollspulen messe ich noch den Wert eines 10-Gang-Potis, wobei ich die A/D-Messung bei Eintreten in den Schlitz starte.
Die Motorschritte für alle Motoren löse ich via "konstantem" Timer aus, und verändere durch Teiler (aus Array) die Geschwindigkeit. Hierbei wird zum Anfang und Ende jeweils das Array pro Schritt adressiert .. die Werte im array sollten wie gesagt, nicht linear sondern einer 1/cos-Funktion folgen, dann erreichst Du hohe Endgeschwindigkeit.

Viel Erfolg noch,
Vajk