This is a very interesting question and it's really a hard one for a foreign learner because the English translation of both verbs is "to stay" in most cases.
Волкодав слегка пожалел о том, что успел миновать ворота и не остался на ночь в лесу. [Мария Семенова. Волкодав: Знамение пути )
― Вы уже или уходите, или оставайтесь». Он остался на восемь лет. [Антонина Крищенко. Императрица Клавдия (2002) // «Домовой», 2002.12.04]
Но когда через неделю он опять остался на ночь у Шуры, утром, придя на работу, еще с улицы в окне лаборатории увидел Броню. [Роман Солнцев. Полураспад. Из жизни А. А. Левушкина-Александрова, а также анекдоты о нем (2000-2002) // «Октябрь», 2002]
Впервые он остался на ночь один. Он побродил по квартире, не зная, чем заняться. [Ирина Антонова. Тринадцатый пират // «Мурзилка», 2000]
Вот туда, на дачу, когда все съехали осенью, а я еще остался на день-два сторожить вещи, приехал ко мне мой старший брат Юра: наверное, пожалел меня, что я тут один. [Г. Я. Бакланов. Жизнь, подаренная дважды (1999
These examples are from the National corpus.
Остановиться for some time somewhere means to start your staying or to organize it making reservations
Я остановился в отеле.--I just came and engaged a room there.
Я остался в отеле на два дня. --I was staying at the hotel at that time and decided to prolong or continue my staying.
That is the main difference.