The transistor needs to be fully on or fully off, not somewhere in between, that is one reason why pwm is used to drive it.
The base resistor value seems too big for the gain of the transistor to me, try a lower value resistor bearing in mind the maximum output pin current of the Arduino.