Да, хорошо, но даже весьма крутой алгоритм не справится с
раздолбанным или загрязненным китайским энкодером, у которого
контакты замкнутой в данный момент фазы рандомно теряют контакт в
абсолютно произвольное время (то есть дребезжать может не только в
момент переключения, а вообще в любой произвольный момент, пока
контакты замкнуты). Такая фигня наблюдается весьма нередко, причем
даже у новых энкодеров, которые долго лежали на складе, приводит к
ложным шагам в противоположном направлении, у меня даже микроволновка Самсунг так глючит. Надежное решение только одно, аппаратные RC цепочки на каждой фазе, за ними триггеры Шмитта (если входы проца таковыми не являются). Постоянная времени примерно вдвое меньше времени замкнутого состояния фазы при наиболее быстром вращении.