На мой взгляд особенной разницы нет, есть смысловая и разница, когда лучше употребить то, или другое слово.
Подарить - более материальное понятие, одарить более возвышенное и может быть только духовным без материального, того, что можно подержать в руках.
Одарить можно взглядом, улыбкой, атмосферой, хорошим настроением, доброжелательным участием, пониманием и так далее.
Тогда как "подарить" можно подарок, машину, квартиру, куклу, игрушку, платье, кольцо, туфли и сумочку.
Если в отношении простого подарка употребить слово "одарить", то это получится высокомерно, свысока, то есть несколько неуместно.