questo è una parte dello sketc :
int ore = rtc.getHours();
map(ore,8,10, 0,255);
così potrebbe funzionare anche nel calcolo nel momento in cui io imposto l'ora?
No. Così hai solo 3 valori:
8->0
9->128
10->255
Devi usare i secondi come ti ha detto PaoloP, più che i secondi io userei il timestamp UNIX. Trasformi l'orario in timestamp (il numero di secondi dal 1970.0 ad oggi) e poi i conti li fai in secondi, in questo modo hai molti più valori. Con la map messa come hai fatto tu ottieni solo 2 valori perché map restituisce un intero.