uint8_t change_this_cell = 0;
// value of the default cell
uint8_t change_value = EEPROM.read(change_this_cell);
How is one supposed to make a connection between a variable called change_this_cell and an address in EEPROM? Meaningful names would make your code easier to follow.
uint8_t change_this_cell = 0;
for (uint16_t cell = 1; cell < cells_to_use; ++cell) {
change_this_cell = cell;
Storing a uint16_t in a uint8_t is going to potentially require a big shoe horn. You really need to evaluate all the argument types to see whether they are all reasonable.
for(uint8_t times=0; times<8; ++times) { // pot input divide by 25 or 30 for Leonardo....multiply by 5 for Uno
The relationship between the comment and the code is???