Micros returns a 32bit result. It overflows every 2^32 µs which is every 4.295E9 µs (=4295s = 71.6min). To prolong this you can store the value in the lower 32 bits of a 64bit variable. Then look periodically (at least once every 71min) if the read out value is smaller than the last one. In this case increment the high 32bit of the 64bit variable by 1. This will overflow in about 585000 years.