Дребезг возможен только между соседними отсчетами, и при защелкивании правильное состояние гарантируется. Только если время обработки up() и down() больше проскока четверти - нужно считать прямо в коде и устанавливать флаг "изменился счетчик". Ну или посылать сливаемое в очереди сообщение.