Adapting to Function Difficulty and Growth Conditions in Private Optimization