Adaptive Subdivision
A operation to optimize what is happening in a real-time environment like in a game engine. What is happening there is that game probably have a lot of high-resolution models or high numbers of models going on during execution. So Adaptive Subdivision is a way to cut down all the polygons from showing up all the time. If it's not important or far away don't show them. Like pycoder said, it's a level of detail (LOD) system. Design to display real-time environment efficiently.
For the adaptive option on the open subdiv tool however, it's also included as a tool for real-time surface tessellation at cpu/gpu render time. Especially in an animated sequence where your camera will be moving closer or further away from the objects in the scene.
Dynamic Topo
It's more like a tool for 3d content creation. In the past, they have multi subdivision to do the job. What happens is that we end up with a sculpt that has lots of polygons, regardless if there are any necessary details on the surface. The whole model is ramped up with polygon every other higher subdivision steps.
Dynamic Topo solves that problem by adding only necessary polygons density to necessary parts where there are actually details or sculpted area that really needed those extra polygons to display them. Resulting in a more efficient workflow, and saves you more resources, money and time.
Conclusion
They both does one thing in common, that is to make rendering 3d object on screen more efficient. The difference is adaptive subdivision is purely a real-time environment display mechanism and the other a tool for 3d artist.
I am afraid at the coding level, I know too little to help with that. But that's all I know about the 2 topic.