Mi viene un dubbio quando dici che ruotando molto lentamente funziona ... non e' che le funzioni di lettura del DHT e di pilotaggio del display richiedono troppo tempo, rispetto alla differenza di tempo fra i due impulsi dell'encoder, per cui se giri troppo velocemente se li perde ?
In quel caso sarebbe meglio usare almeno un'interrupt (uno solo per un'encoder ruotato a mano e' piu che sufficente) attivato sul "rising" (o falling, dipende da come l'encoder e' cablato elettricamente) di uno dei due pin ... all'interno della ISR controlli lo stato dell'altro pin, se e' alto stai girando in un senso, se e' basso stai girando nell'altro, sempre ...