This is partly a matter of opinion. I will offer my view. Other may have different views.
The code should not be adopted to Cucumber. The code should be testable. This happens to be in line with what you need to be able to connect to the code from a test, or a step in Cucumber.
There is no need to start from scratch. If the code is testable, it will be possible to drive the development using Behaviour-Driven Development (i.e. Conversations, Concrete examples, Automated acceptance tests, Code, in that order).
Starting to use BDD on an existing project/product is possible and in most cases necessary as you already have a goal with your work. BDD is just a mean, not a goal.
The feature files should be stored with the source code. That is, it should be version controlled the same way as the rest of your code.
It has to be available when your continuous integration server, Jenkins or similar, builds the system after each commit. If you store them somewhere else, you will end up with problems building and verifying the system.
There is no conflict between Cucumber and the Page Object Pattern. The scenarios you create, i.e. the concrete examples of how the system should work, are converted to steps that actually perform something. A good habit is to delegate from the steps to helper objects. An example of these helpers are Page Objects.
It sounds to me that you need to learn more about Behaviour-Driven Development and Cucumber.
I have some resources that might help you.