Hi,
A diode isn´t cheaper than a resistor.
And a resistor includes negligible temperature drift compared with a diode.
The diode drift will be about 2.1mV/°C and is not predictable ... unless you have an additional temperature measurment
The diode current varies with input voltage. And thus the diode voltage drop will add some new unlinear errors.
Input voltages from 0V ...0.5V leads to about zero output voltage is thus is not decodable.
In total for a 10 bit, 5V FS ADC input this means:
* 1/10 Resistor: input voltage range: 0V ..5.5V, which mans 5.37mV/LSB
* Diode: the input voltage range is 0.5V ... 5.5.V which means about 4.88mV/LSB ... this looks like an improvement.
But you pay this improvement of 0.5mV of resolution with about 21mV (or 4.3 LSB) (at +/-5V ambient temperature variation) added error.
On a resistor with tc = 100ppm/°C the expectable unpredictable error (precision) should be about 1LSB (5.4mV)
--> you loose precision. And as soon as the precision error is higher than 1LSB you loose overall performance.
****
Zeners with V_Z about 5V have low tc. Maybe here it is possible to gain performance. (needs calculation) ... but in the OP´s application a 5V zener makes no sense.
Klaus