Yes, you can absolutely use dynamic neighbors on BGP for this. In fact, this would be the preferred method, especially if you have a lot of spokes. By using the BGP option of “listen range” you can specify entire network ranges where you will allow a BGP neighborship to form. By using the listen range option, you can create DMVPN templates for the spokes and hub(s), so it is very easy to deploy new devices.
I don’t quite understanding what you are asking in the second part of your question. What DMVPN phase are you in? If you are in Phase 1, there is no reason you shouldn’t be using a default route, or at least a summary route, on each spoke that goes to the Hub. The reason is that with DMVPN Phase 1, all data plane traffic must flow through the Hub anyway, so your spokes learning about more specific routes isn’t doing them any good.