La soluzione è "semplice", non devi usare micros() e/o la input capture, devi usare un timer dedicato in modo da ottenere una risoluzione reale al singolo us.
Più in generale, visto che il tuo scopo è realizzare un drone lascia perdere versioni di Arduino basate sul Atmega328P e usa versioni basate sul Atmega2560, oltre ai limiti di flash e ram risolvi anche il limite dei ridotto numero di timer a 16 bit presenti sul 328P.
Tieni presente che con un processore 8 bit hai molti limiti, ormai tutti i software open source per droni sono basati su hardware a 32 bit proprio per le limitazioni imposte dal hardware a 8 bit.