Bueno.. hay relamente varias pero en general te puedo decir que DAO utiliza objetos Database en cambio el ADO utiliza objetos connection. El ADO permite trabajar con SQL Server y es de mucho mejor integración con las tecnologías de Microsoft,

tiene una interfaz común para acceder a datos locales y remotos. Es el nuevo estandard utilizado para para el acceso a datos, ya que además permite la conexión con varios proveedores de datos.
Por otro lado ADO a traído la clave a la estrategia de acceso a datos de Microsoft. Es el primer método de acceso a datos universal que soporte múltiples tecnologías de bases de datos y entornos de programación. Puedes usar ADO en un puro VB, Java, C++, u otra aplicación, así como en una .ASP es adaptable a cualquier entorno y DAO fue el primer estándar de Microsoft para VB, Access, y otras entornos basados en JET aunque no se adapta bien al WEB

y ofrece mejores resultados en las aplicaciones tradicionales de cliente-servidor usando JET.
Los métodos de acceso a datos como ADO requieren un proveedor de datos. Este puede tomar varias formas. ODBC es uno de ellos. Uno mejor es OLEdb que está basado en COM, ofreciendo acceso fácil a una ancha variedad de fuentes de datos. Cualquier proveedor OLEdb puede exponer datos a ADO.
Bueno.. creo que ésto es una manera algo general, espero que te sirva.
Saludos