Realmente no hay una definición concreta para ninguno de los términos (o para el término relacionado "marco", para el caso). Hay cientos de formas diferentes de interpretar las diferencias sutiles variadas en los paquetes de software y asignarles clasificaciones.
Personalmente, veo una "biblioteca" como algo que proporciona un conjunto de funcionalidades relativamente pequeño y dirigido, mientras que un "marco" proporciona una funcionalidad más o más amplia, y un "motor" proporciona lo mismo (o más) y normalmente tiene un conjunto de herramientas asociadas que vienen con él.
He visto suficientes interpretaciones personales de otras personas de los mismos términos para sentirme seguro, sugiriendo que un "motor" proporciona más o mayor funcionalidad que una "biblioteca", pero donde dibujas esa línea para tu propio software depende de ti.