so I guess I'll not mess with what (seemingly) ain't broke
Appearances are deceptive, using an int is wrong.
float getThermistor() {
uint8_t i;
float average;
int ms = millis();
So ms is defined in that function therefore when you go
nextUpdate = ms + 500;
return steinhart;
The value of nextUpdate is not updated correctly. It is also an int so it will not hold the right information.