Já nevím, ale pokud jde jenom o rozdělení 0-50-100, tak by to snad takový problém být neměl, ne ?
Hodnota_AD = načíst AD převodník;
Procenta = 50;
if (Hodnota_AD < 400 ) Procenta = 0;
if (Hodnota_AD > 700 ) Procenta = 100;
Případně si hodnoty 400 a 700 upravíš a máš hotovo…
Důležité je, jak je hodnota z AD převodníku stabilní, jestli máš dobře udělané napájení MCU tak, aby odpovídalo požadavkům pro použití AD převodníku podle datasheetu. To, že v krajních hodnotách z AD převodníku nedostaneš 0 a 1023 bych rozhodně neviděl jako problém.