How to determine what transistor is needed
You say you want to control a motor that requires from 180 to 250 mA at no load from a 3.3 V digital output of questionable current sourcing capability.

First, the no load current is pretty useless.  The important parameter is what the maximum load will ever be.  That is what you need to design to.  If the circuit can handle the maximum current the motor will draw, it will certainly be able to handle a lower amount.  The maximum current, also called the "stall current" is probably 500 mA at least.  Let's figure 1 A max.

Here is a circuit that should work nicely:



This FET has a guaranteed maximum on resistance of 80 m&Omega; at 2.5 V gate drive.  At 1 A it will only drop 80 mV and dissipate 80 mW, which is fine for a SOT-23 package.  You will notice it getting a little warm, but it will be well within its limits.

A FET is a better choice here than a bipolar like your 2N3904 for several reasons.  First, it will drop less voltage and therefore take less from the motor.  At such a low drive voltage, even a few 100 mV can become significant.  Second, it will drop less voltage and therefore dissipate less power and not heat up as much.  Figure a bipolar would drop at least 200 mV although probably more at 1 A.  Even just 200 mV at 1 A is 200 mW, which would make a SOT-23 pretty toasty.  Third, it won't load the digital output, which you say has low current sourcing capability.  The FET gate will only look like a capacitor to the digital output.  That will slow down its edges, but they will still be instantaneous on the scale of anything the motor will react to.

A 2N3904 is a pretty crappy transistor for more than just signals anyway.  I ususally use 2N4401/4403 for jellybean bipolars.  They have more current capability and are generally more robust, but still have good gain and are also cheap and widely available.  But I wouldn't use even the 2N4001 in this case.  The FET is a better choice.