user58137: have main board which has motor control circuit and has row and column to control the row and column of the vending machine.
I have made changes in motor in two ways:
A. I have attached an image for circuit diagram

In this design I have some pros and cons
PROS: 1. It stops at its home position after one rotation
2. It detects row and column of the machine
CONS: 1. Sometime it does not stop at its home position or take more than 1 rotation
B. I have attached an image of other diagram

In this design also I have some pros and cons
PROS: 1. It stops perfectly at its home position after one rotation.
CONS: 1. It does not detect ROW
Please suggest What should I follow and what should I made changes in the circuit.
Here is the video
https://drive.google.com/open?id=1N7ItjeU84JiDAOquAD6SGHkVWufDT40K
https://drive.google.com/open?id=1VX9yncrm6pcr1IBQsNvVZ1yR0UMflJKA

user313: 
"It rotates little bit forward like 10% extra with 3.1 sec delay,"
"I just want to rotate the motor from the home location to the home location when I give signal one time. But i do not know what time delay should I use?"

More than 2.0 and less than 3.1! If 3.1 sec gives 110% rotation, then you need
(100/110)*3.1 = 2.818sec to get 100%.
I realize that your 10% extra is an estimate and not accurate to 3 decimals, but I'd use 2.82 as a starting point and tweak it up or down until you get the amount of rotation you want.
Remember that timing a motor to get distance will inherently be inaccurate due to inconsistencies in the motor acceleration rate and rotation speeds, due to variations in its temperature and the power supply voltage, and load, but this should get you started. For long term accuracy, i.e., if you need it to always come back to a fixed position, you'll need some position feedback, which may be as simple as flag on the motor shaft interrupting a photocell. And even that will have some degree of inconsistency due to coasting speed when you shut the power off, but at least those error won't accumulate.
Update:

2.82, My motor rotates 10% less every time and change its location in every rotation

Right - 2.82 was a first approximation. If that is too small, try splitting the difference between 2.81 and 3.1. If that ends up too small, then split the difference between it and 3.1; or if it was too big, try splitting the difference between 2.1 and it. Do that a few more times until you have an acceptably close value.
Then read what I said about accumulating errors. The Arduino doesn't ever know what the motor position is so it can't correct for any overshoot or undershoot. If you need accuracy and repeatability, you'll have to add some kind of position sensing, or switch to using a stepper motor and drive the number of steps that makes one full rotation (and it would still have to be started from a known position).

58137: <p>have main board which has motor control circuit and has row and column to control the row and column of the vending machine.</p>

<p>I have made changes in motor in two ways:</p>

<p>A. I have attached an image for circuit diagram
<a href="https://i.stack.imgur.com/WhUb2.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/WhUb2.jpg" alt="enter image description here"></a></p>

<p>In this design I have some pros and cons</p>

<p>PROS: 1. It stops at its home position after one rotation
2. It detects row and column of the machine</p>

<p>CONS: 1. Sometime it does not stop at its home position or take more than 1 rotation</p>

<p>B. I have attached an image of other diagram</p>

<p><a href="https://i.stack.imgur.com/OuDuu.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OuDuu.jpg" alt="enter image description here"></a>
In this design also I have some pros and cons</p>

<p>PROS: 1. It stops perfectly at its home position after one rotation.</p>

<p>CONS: 1. It does not detect ROW</p>

<p>Please suggest What should I follow and what should I made changes in the circuit.</p>

<p>Here is the video</p>

<p><a href="https://drive.google.com/open?id=1N7ItjeU84JiDAOquAD6SGHkVWufDT40K" rel="nofollow noreferrer">https://drive.google.com/open?id=1N7ItjeU84JiDAOquAD6SGHkVWufDT40K</a></p>

<p><a href="https://drive.google.com/open?id=1VX9yncrm6pcr1IBQsNvVZ1yR0UMflJKA" rel="nofollow noreferrer">https://drive.google.com/open?id=1VX9yncrm6pcr1IBQsNvVZ1yR0UMflJKA</a></p>
 313: <blockquote>
<p>&quot;It rotates little bit forward like 10% extra with 3.1 sec delay,&quot;</p>
<p>&quot;I just want to rotate the motor from the home location to the home location when I give signal one time. But i do not know what time delay should I use?&quot;</p>
</blockquote>
<p>More than 2.0 and less than 3.1! If 3.1 sec gives 110% rotation, then you need
(100/110)*3.1 = 2.818sec to get 100%.</p>
<p>I realize that your 10% extra is an estimate and not accurate to 3 decimals, but I'd use 2.82 as a starting point and tweak it up or down until you get the amount of rotation you want.</p>
<p>Remember that timing a motor to get distance will inherently be inaccurate due to inconsistencies in the motor acceleration rate and rotation speeds, due to variations in its temperature and the power supply voltage, and load, but this should get you started. For long term accuracy, i.e., if you need it to always come back to a fixed position, you'll need some position feedback, which may be as simple as flag on the motor shaft interrupting a photocell. And even that will have <em>some</em> degree of inconsistency due to coasting speed when you shut the power off, but at least those error won't accumulate.</p>
<p>Update:</p>
<blockquote>
<p>2.82, My motor rotates 10% less every time and change its location in every rotation</p>
</blockquote>
<p>Right - 2.82 was a first approximation. If that is too small, try splitting the difference between 2.81 and 3.1. If that ends up too small, then split the difference between it and 3.1; or if it was too big, try splitting the difference between 2.1 and it. Do that a few more times until you have an acceptably close value.</p>
<p>Then read what I said about accumulating errors. The Arduino doesn't ever know what the motor position is so it can't correct for any overshoot or undershoot. If you need accuracy and repeatability, you'll have to add some kind of position sensing, or switch to using a stepper motor and drive the number of steps that makes one full rotation (and it would still have to be started from a known position).</p>
