Полностью дребезг программно победить можно, если рассматривать полный граф переходов енкодера и не считать дребезг чем-то исключительным. Конечно, частота переключения фаз должна быть в несколько десятков-сотен раз ниже тактовой :)
Если фазы енкодера считать битами числа, то граф переходов это 0-2-3-1 вперёд и 0-1-3-2 назад. С дребезгом: 0-2-0-2-3-2-3-1-0-1-0-1 и т.п. Надо отслеживать переход на 2 фазы, например, 1-3-2, а переход туда-сюда между двумя соседними фазами игнорировать. О дребезге контактов имеет смысл говорить, если есть фиксация положений - "щёлкалка". Если же это оптическое колесо на валу с вибрациями, то метания между соседними фазами обычное дело.