- Power source: two 12V dc, 450mA power supplies
Oh, that's interesting! It means your supply is inherently supplying less current than your motor might be able to sink.
This is relevant in this context, because if you leave the motor switched on for a long enough time while it still accelerates, the 12 V will drop.
That means that the motor wouldn't really "see" a reduced "on time" as something that drastically reduces its speed, because the longer the on-time, the less current flows, anyways. However, assuming your supply has some capacitor inside, for short on-times, the voltage will seem to be more or less constant.
Motor: R140 Micro DC Motor; Voltage Range: 3-12V; No Load RPM: 12000rpm (At 12V)
was hoping for a bit more detailed information (like the currents to expect), but OK
Circuit Output: At no load, motor speed should change from 3000 rpm to 12000 rpm corresponding to the position of the potentiometer
Oh! Nice problem.
So, first of all, this means you need to allow for (close to) 100% duty cycle, as well as for probably relatively low duty cycles. Which makes the 555 as the one generating the duty cycle a complicated and awkward choice.
A reasonable electrical engineer would just use a microcontroller here. (I'd strongly recommend that – use one ADC channel for the potentiometer's output wiper voltage, the other to sense the periodically changing current while the PWM is on, and a timer unit to generate the PWM and to trigger the ADC conversion). A very simple PID controller program would be used to adjust the duty cycle until you hit your target speed. This would in total need 1 potentiometer, 1 motor, 1 microcontroller, 1 decoupling capacitor for the microcontroller, 1 gate resistor, 1 logic level n-channel mosfet, 1 capacitor and 1 resistor to form a crude RC low pass filter for the ADC in the MCU to measure the voltage across the MOSFET's Drain-Source. Can't get much fewer components than that, especially not with a 555. And you'd get, for 8 components including the motor, a device that actually sets exactly the desired drive speed.
Now, barring microcontrollers, we need to be a bit smart. We'd want a frequency reading. And we'd want to compare that to our setting on the potentiometer, to determine whether the MOSFET should stay on longer or shorter.
So, how do we get a somewhat sensible frequency readout? Well, we can put a (low-value) resistor in series with the motor, and observe the current across that. It pulses twice per rotation for a brushed DC motor under no load. Sadly, that current also changes (quite abruptly) when we switch the MOSFET. We could, of course, also time our measurements such that we look when the transistor is conducting, but uhhh, we'd be building a quasi-time discrete system, and building something that is close to a digital controller isn't easier than buying a microcontroller that is one.
So, we instead would like our average current through the motor M1 to be proporational to a linear function of the potentiometer position. Fine!
simulate this circuit – Schematic created using CircuitLab
Now we go amplify that to have a useful voltage range. The voltages it takes will depend on your motor, so I don't have numbers for you on how much amplification you need. But, seeing that your maximum average current is 450 mA as per your supply specification, and 450 mA · 0.2 Ω = 90 mV, we'll need quite a bit of gain to get somewhere useful. As a design hypothesis, I start with a gain of 101:
simulate this circuit
You can use a trimmer (potentiometer that you just adjust and don't use to control) for R1-R2 to be able to adjust the gain as needed (the voltage gain of the non-inverting opamp configuration shown is \$1+\frac{R_2}{R_1}\$). As alluded to in the schematic, since the input voltage is so close to the negative supply, you need a rail-to-rail opamp – these are easy to get standard components, these days. If you can get a NE555, you can get an opamp!
Finally, we need to compare that Vamplified to the setting of our potentiometer. So, we need a comparator, the non-inverting input of which you connect to Vamplified (or, you add another RC low pass filter in between – it certainly doesn't hurt!) and the inverting one to the wiper of your potentiometer. The potentiometer is between ground and a resistor to supply voltage:
simulate this circuit
The 555 is pretty useless for this. You can use it as a comparator, but it's not really an interesting part for that, as it has problems going rail-to-rail.