Speravo di trovare spunti interessanti (il linguaggio degli avr mi e' piu' famigliare) ma sono rimasto un po' deluso.
A parte il fatto che non compila (e' sbagliata l'inizializzazione della libreria del display i2c) mi pare una versione pasticciata del programma di Oleg.
Non so se ho preso una svista ma mi sembra che usare il timer in quel modo sia una porcata.
Imponendo TCNT5=65535; avra' un overflow (e quindi la relativa ISR) del timer5 ad ogni impulso dell'encoder. Tanto valeva collegare l'encoder direttamente ad un pin di interrupt esterno.