Шаговые двигатели меряют фактически количество оборотов ДО редуктора, соответственно будут ошибки, накапливаемые в самом редукторе (а это основной их источник, помимо люфта шарниров и деформации всей конструкции под физическим напряжением, инерции, собственным весом и изменений температуры).
Значит необходимо измерять угол поворота последнего шарнира в редукторе (или предпоследнего, тогда можно сочетать измерение угла с количеством оборотов) или даже расстояние, на которое сдвигается сам инструмент.
Для изменения угла легче всего использовать диск с большим количеством насечек у стекла/щелей у непрозрачного/просто полос и считать их обычным фотоэлементом (парой, чтобы определять направление вращения). Сейчас посмотрел, в википедии есть вполне понятная статья про энкодеры:
ru.wikipedia.org/wiki/Датчик_угла_поворота
Если речь идет о 'сделай сам' и низких бюджетах, то в этом случае, чем больше радиус диска, тем проще его изготовить самому, полоски же вообще можно напечатать на принтере. Так же можно развить идею, и вместо диска и фотоэллемента можно поставить зеркало/фонарик и ловить световой зайчик вебкамерой на б
ольшем расстоянии — речь идет не получении координат в реальном времени, а о постоянной автоматической компенсации ошибок измерений (пока этот световой зайчик будет распознан....)