In the latter case I'd say you'd have quite a daunting task ahead of you. Without any previous management experience and existing leadership skills becoming the CTO of a company of roughly 250 people (which is the definition of a larger SME) might be biting off more than you can chew.
If it's more of an aspirational goal you should focus on people skills first and foremost. Being able to present and generally communicate complex technical matters in a way different target audiences (engineers, management, customers) will understand you is one of the most important traits of a successful CTO. Staying on top of current technological development and trends on a general level is crucial, too.
As a CTO you don't have to know how to exactly use a specific technology but you have to be able to decide which technology in a particular area will be most suitable for your organisation.
Finally, if you take your job as a CTO seriously you most certainly won't code or do any day-to-day engineering anymore. A CTO who still codes is an anti-pattern and almost always a sign that there's something seriously wrong with the company.
You'll need to scale along with the company - in the early days you'll be writing a ton of code, but once the company is "mid-sized" your role is going to be managing people. As someone else mentioned, if at that point you're still coding either you're a terrible CTO or you're working for a terrible company (or both). :)