Зависит от порядка сохраненных байтов.Если порядковый номер совпадает с порядковым номером вашей целевой системы (я думаю, что Atmegas имеют старший порядковый номер), вы можете просто сделать
int32_t number = *(int32_t*)array;
, чтобы получить 32-разрядное целое число.
Если порядковый номер не равенв соответствии с этим вы должны сдвинуть байты вокруг себя для небольшого закодированного числа:
int32_t number = uint32_t(array[3]) << 24 | uint32_t(array[2]) << 16 | uint32_t(array[1]) << 8 | uint32_t(array[0]);