Yes, there is an optimal price when you should roll. However that optimal point in time is only known in hindsight because (hypothetically) today could be the ideal time whereas perhaps today is the best day so far but 3 days from now could be a better day to do so.
However, there is something that you can do computationally to determine if it's a good idea to roll a short call to a subsequent time period.
Calculate the average premium per day that you will be receiving from your short call from now until it expires. Compare that to the average premium per day that you will receive from options of the same strike for later expirations. If any of them are significantly higher, it's usually a good idea to roll.
It's not such a straightforward comparison if you are looking at rolling to a different strike price. Then, you have to account for the higher (or lower) amount that you will receive if assigned. Per your example, if the stock rose toward $12 and you would like to keep it, rolling the short $12 call up and out to $13 for even money might be desirable.
Understand that premiums are related to the square root of time so you usually get more premium per day for shorter expirations. For example, an ATM one month call might be $1 whereas the same ATM call for 9 months might be $3. Therefore, the ROI is much higher for one month writes though there's no guarantee that you'll be able to do it 9 times. In fact, it's unlikely.
The short answer? Evaluate what you can get for rolling an option and if it improves the sitation, do it. Otherwise, sit tight and let time decay work its magic.