how to make something time sensitive??

AWOL:
Not really QED, because you haven't started your assumption that a successive approximation ADC can read up to and including Vref.

Oh sorry. And what values it CAN read? What about 0.0000001V? Result 0V, error 0.0000001V -> not correct by your "definition". Or is 0.0000001V also "unfair"?

Anyway in Voltage Reference description the Datasheet states "Single ended channels that exceed Vref will result in codes close to 0x3FF" so you may measure Vref or even more - you should get 1023 for all such voltages.

But the Datasheet in ADC Conversion result section says "0x000 represents analog ground, and 0x3FF represents the selected reference voltage minus one LSB." It apparently support your claim. But it is clearly not true. In reality 0x000 represents "Some voltage between under 0.5 LSB but high enough the chip survived" and 0x3FF represents "Some voltage over Vref - 1.5 LSB but low enough the chip survived".

AWOL:
I don't disagree, but the principle is important.

Now you quote some mysterious "principle". I guess this "principle" dictates what is "correct". Unless you define those terms you are just dogmatic.
When I convert ADC reading to real voltage (and float) I am probably doing it for human to read. When I convert reference voltage (or voltage close to it) I want to see reference voltage on my display. When I convert 0V I want to see 0V. When I convert "something between" I want to see "something between" with linear relationship if possible. This is my "principle" and vision of "correct way". I don't want to guess if 4.9xxxV is maximal reading or if it is 1 or 2 LSB less. If you want spend memory and processor time to make float to get "nice numbers" and then ruin it for sake of "principle" way under noise and ADC error it is your problem. Why you force it to newbies is mystery for me.