Православный. Из семьи чиновника. В 1888 окончил первый московский кадетский корпус. В 1891 окончил Михайловское артиллерийское училище, Выпущен в лейб-гвардии 3-ю артиллерийскую бригаду. Поручик (ст. 05.08.1895).
В 1897 году окончил Николаевскую академию генерального штаба по первому разряду. С 17 января 1898 — старший адъютант штаба 38-й пехотной дивизии. С 6 мая 1898 — обер-офицер для поручений при штабе Варшавского военного округа. Цензовое командование ротой отбывал в лейб-гвардии Кексгольмском полку (21.11.1898-27.11.1899).
C 18 марта 1901 — помощник военного агента в Вене. С 10 июня 1903 — военный агент в Черногории. С началом первой мировой войны оставался в Черногории, представлял русское командование при черногорском Главном командовании. Генерал-майор (1912).
В 1916 отозван в Россию и 10 августа 1916 назначен начальником эвакуационного управления ГУГШ. С 27 ноября 1916 — начальник эвакуационного и по заведованию военнопленными отдела ГУГШ.
После Февральской революции 13 апреля 1917 был назначен генерал-квартирмейстером ГУГШ.
Был одним из первых представителей высшего военного командования, который пошел на сотрудничество с большевиками и начал предоставлять им необходимую информацию еще до прихода их к власти. Знавший Потапова еще с юношеских лет известный деятель партии большевиков М.С. Кедров позднее вспоминал, что «после июльских дней генерал Потапов Н.М., помощник начальника Главного штаба и генерал-квартирмейстер, предложил через меня свои услуги Военной организации большевиков (и оказывал их)».
После Октябрьской революции сразу же начал сотрудничать с СНК и 23 ноября 1917 назначен начальником Генштаба и управляющим Военным министерством. С декабря 1917 — управляющий делами Наркомвоена.
В июне-сентябре 1918 — член Высшего военного совета. С лета 1918 постоянный член, с 4 июня 1919 — председатель Военнозаконодат. совета (с 04.1920 совещания) при РВСР.
С 19 ноября 1921 пом. гл. инспектора Всевобуча. С 1 июля 1922 Помощник Главного Начальника Всевобуча. На 01.03.1923 руководитель практическими занятиями по французскому языку Военной Академии РККА.
Участвовал в операции ГПУ «Трест».
21 июля 1936 Потапову было присвоено звание комбрига. С 1938 в отставке. Умер в Москве. Похоронен на Новодевичьем кладбище.