Non-stop flights do not have any scheduled touch-downs en route. They fly directly from A to B.
Direct flights mean that there is no change of aircraft but that stops are possible and indeed probable, as per the airlines' timetables. Example: A flight from A to B with a scheduled stop (but no change of planes) in C.
A non-stop flight between two cities. A flight between A and B comprised of two segments could mean a direct flight between A and B with a scheduled stop (but no change of planes) in C, or two non-stop flights between A and C and C and B respectively, but with a change of plane (and possibly air carrier) in C.
A series of flight segments in order to go from A to B.
Adrian Turtschi, July. 2006