Фильтрация выставлена в 0.
"Насколько я понял, у вас двигатель движется туда-сюда, и при каждом таком действии финальное положение оси оказывается разным, хотя по энкодеру показание одно и то же. Верно?"
Да, верно. Обнуление интересует на тот случай, когда согласятся с датчиком.
Пользовательский алгоритм здесь не применял. Есть интересный, взятый из широко распространенного примера с прерыванием. Не хочу связываться с прерыванием, а без прерывания не вижу преимуществ.
Как раз фильтрацию в готовом модуле хочу попробовать. Частота импульсов не высокая. Может получиться.