Для вращения шагового двигателя на заданное количесво шагов, используются специальная конфигурация магнитов. Если вращать вал шагового двигателя вручную, эти магниты наводят электрический ток в определённом виде, который, можно декодировать при помощи контроллера Arduino и использовать в качестве энкодера.
Ссылки
Using Stepper Motor As Rotary Encoder
По теме
Энкодер
Энкодер и шкала
Датчики Холла
Arduino
Ардуино что это и зачем?
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)