По сути - там и там адрес. Но ссылка указывает на уже существующий объект, а указатель может быть нулем, что иногда удобно. Указатель легче сделать невалидным, указывающим "в мусор", ссылку несколько сложнее, но и она не защищена от этого.
Кстати, построить ссылку сразу на динамическую память нельзя, сперва придется создать такой объект по указателю.
На мой взгляд, в случаях, когда нет специального значения нулевого указателя, можно использовать ссылки.