Как организовать сравнение переменной с элементом массива?
Вы привели фрагмент кодаfloat value = (float)analogReag(A1)*5*1000/1024;
int value_int = (int)value_int;
switch(value_int) {
case(4442):
current = 120;
Во второй строке ошибка? Должно быть int value_int = (int)value;?
Если да, то зачем интовое значение analogReag переводить во флоат, а потом опять в инт? Разрядность это не увеличит, поэтому можно сделать так:
//Объявли массив table из 1024 значений
//Для каждого значения ввели правильный ответ
int table[] = {12, 34, 64, 33, ..., 954}

//Где-то в коде
int value = analogReag(A1);
current = table[value];
Это уменьшит Вашу таблицу вдвое, выборка будет максимально быстрой. Расплатой послужит некоторая неочевидность заполнения таблицы, т.к. оперировать придется не значением напряжения, а отсчетами АЦП.
Двоичное дерево поиска или хэш-таблица.
Хотя 100 пар это ни о чём. Вы время засекали? Вот где-то со 100 тысяч можно уже беспокоиться.
Кстати, и формулу вы зря отбрасываете. Возможно, кубические сплайны вам помогли бы.