Слова 
надеяться и 
уповать имеют общий компонент значения, это безусловно. 
Оба слова означают: "иметь надежду, рассчитывать на что-либо или кого-либо, полагаться на что-либо или кого либо". Такое толкование предлагается, к примеру, в  "Словаре русского языка в четырех томах" АН СССР под ред. А.П.Евгеньева (любое издание). Вместе с тем в словаре у слова 
уповать имеются пометы: 
устар. и
 высок., а при толковании значения отмечено: "
Твердо надеяться на что-либо,
 с надеждой, верой ожидать исполнения, осуществления чего-либо". Это значит, что слово 
уповать имеет важный компонент значения, который не свойственен глаголу
 надеяться:
 твердо надеяться,
 с верой ожидать. 
Кроме того,
 надеяться - это слово стилистически нейтральное, оно может употребляться в текстах любых стилей, в то время как слово 
уповать - имеет стилистическую отнесенность к высокому стилю (часто называемому книжным). Это означает, что сфера его употребления существенно уже, что понятно: такое ограничение имеют многие слова, относимые к устаревшей лексике.
Об употребительности слов и стилистических пластах русской лексики можно почитать здесь: 
http://russkiy-na-5.ru/articles/156.